package com.hitqz.robot.camera.common;

/**
 * @author ： 47040
 * @since ： Created in 2020/9/7 9:59
 */
public class ThermalCommon {

    /////////////////////// 枚举 ///////////////////////////
    ///////////////////////////////////////////////////////

    // 测温区域类型
    public enum AreaSubtype {

        UNKNOWN(0, "未知"),
        RECT(1, "矩形"),
        ELLIPSE(2, "椭圆"),
        POLYGON(3, "多边形");

        private int value;
        private String note;

        AreaSubtype(int givenValue, String note) {
            this.value = givenValue;
            this.note = note;
        }

        public String getNote() {
            return note;
        }

        public int getValue() {
            return value;
        }

        public static String getNoteByValue(int givenValue) {
            for (AreaSubtype enumType : AreaSubtype.values()) {
                if (givenValue == enumType.getValue()) {
                    return enumType.getNote();
                }
            }
            return null;
        }
    }


    // 测温模式的类型
    public enum ArrMeterType {

        UNKNOWN(0, "未知"),
        SPOT(1, "点"),
        LINE(2, "线"),
        AREA(3, "区域");

        private int value;
        private String note;

        ArrMeterType(int givenValue, String note) {
            this.value = givenValue;
            this.note = note;
        }

        public String getNote() {
            return note;
        }

        public int getValue() {
            return value;
        }

        public static String getNoteByValue(int givenValue) {
            for (ArrMeterType enumType : ArrMeterType.values()) {
                if (givenValue == enumType.getValue()) {
                    return enumType.getNote();
                }
            }
            return null;
        }
    }

    // 测温报警类型
    // 统计量类型
    public enum AlarmType
    {
        /**
         * 测温：具体值，
         * 线测温：最大, 最小, 平均
         * 区域测温：最大, 最小, 平均, 标准, 中间, ISO
         */
        UNKNOWN(0, "未知"),
        VAL(1, "具体值"),
        MAX(2, "最大"),
        MIN(3, "最小"),
        AVR(4, "平均"),
        STD (5, "标准"),
        MID(6, "中间"),
        ISO(7, "ISO");

        private int value;
        private String note;

        AlarmType(int givenValue, String note) {
            this.value = givenValue;
            this.note = note;
        }

        public String getNote() {
            return note;
        }

        public int getValue() {
            return value;
        }

        public static String getNoteByValue(int givenValue) {
            for (AlarmType enumType : AlarmType.values()) {
                if (givenValue == enumType.getValue()) {
                    return enumType.getNote();
                }
            }
            return null;
        }
    }

    // 比较运算结果
    public enum AlarmResultType
    {
        UNKNOWN(0, "未知"),
        BELOW(1, "低于"),
        MATCH(2, "匹配"),
        ABOVE(3, "高于");

        private int value;
        private String note;

        AlarmResultType(int givenValue, String note) {
            this.value = givenValue;
            this.note = note;
        }

        public String getNote() {
            return note;
        }

        public int getValue() {
            return value;
        }

        public static String getNoteByValue(int givenValue) {
            for (AlarmResultType enumType : AlarmResultType.values()) {
                if (givenValue == enumType.getValue()) {
                    return enumType.getNote();
                }
            }
            return null;
        }
    }

}
